﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace QYWebSiteBN
{
    public partial class Form_ContentClear : Form
    {
        private int index = -1;
        
        public Form_ContentClear()
        {
            InitializeComponent();
        }

        public Form_ContentClear(int index,string content):this()
        {
            this.index = index;
   
            txtClearContent.Text = content;
        }

        private void txtClearContent_TextChanged(object sender, EventArgs e)
        {
            int index = this.txtClearContent.SelectionStart;　　//记录修改的位置
            this.txtClearContent.SelectAll();
            this.txtClearContent.SelectionColor = Color.Black;
　　　　　　string[] keystr ={ "select ", "from ", "where ", " and ", " or ", " order ", " by ", " desc ", " when ", " case ", " then ", " end ", " on ", " in ", " is ", " else ", " left ", " join ", " not ", " null " };
      for (int i = 0; i < keystr.Length; i++)
      {
          this.getbunch(keystr[i], this.txtClearContent.Text);
      }
      this.txtClearContent.Select(index, 0);　　 //返回修改的位置
      this.txtClearContent.SelectionColor = Color.Black;
        }

        public int getbunch(string p, string s) //给关键字上色
　　　　{
　　　　　　int cnt = 0; int M = p.Length; int N = s.Length;
　　　　　　char[] ss = s.ToCharArray(), pp = p.ToCharArray();
　　　　　　if (M > N) return 0;
　　　　　　for (int i = 0; i < N - M + 1; i++)
　　　　　　{
　　　　　　　　int j;
　　　　　　　　for (j = 0; j < M; j++)
　　　　　　　　{
　　　　　　　　　　if (ss[i + j] != pp[j]) break;
　　　　　　　　 }
　　　　　　　　if (j == p.Length)
　　　　　　　　{
            this.txtClearContent.Select(i, p.Length);
            this.txtClearContent.SelectionColor = Color.Blue;
　　　　　　　　　　 cnt++;
　　　　　　　　 }
　　　　　　 }
　　　　　　return cnt;
　　　　 }

        /// <summary>
        /// 向内容添加(*)
        /// </summary>
        private void lbMatch_Click(object sender, EventArgs e)
        {
            txtClearContent.AppendText("(*)");

        }

        /// <summary>
        /// 完成确认
        /// </summary>
        private void btnConfirm_Click(object sender, EventArgs e)
        {
            Form_Tag tag =(Form_Tag)this.Owner;
            tag.updateContentClassList(index,txtClearContent.Text);
            this.Close();
        }

        private void btnCancal_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
